import axios from 'axios';

// 创建axios实例
const aiApi = axios.create({
  baseURL: 'http://localhost:5000/deepSeek',
  headers: {
    'Content-Type': 'application/json'
  }
});

// 添加请求拦截器，在每个请求中添加satoken
aiApi.interceptors.request.use(
  config => {
    // 从localStorage获取token
    const token = localStorage.getItem('token');
    // 如果token存在，则按照特定格式添加到请求头
    if (token) {
      config.headers['satoken'] = `mezhate ${token}`;
    }
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);

export const deepSeekApi = {
  /**
   * 向DeepSeek API发送聊天消息
   * @param {string} message - 用户消息
   * @param {array} history - 可选的历史消息数组，包含role和content
   * @returns {Promise} - 返回Promise对象，解析为DeepSeek的回复
   */
  // eslint-disable-next-line no-unused-vars
  async sendMessage(message, history = []) {
    try {
      // 如果需要发送历史记录，可以按照DeepSeekRequest的格式构建请求体
      // 目前API实现是直接传递消息字符串，未使用完整的消息历史结构
      const response = await aiApi.post('/api/deepseek/chat', message);
      return response.data;
    } catch (error) {
      console.error('AI请求错误:', error);
      throw error;
    }
  },

  /**
   * 构建包含完整历史记录的请求
   * 如果后端API改为接受完整的消息历史，可以使用此方法
   * @param {string} message - 最新用户消息
   * @param {array} history - 历史消息数组
   * @returns {Promise} - 返回Promise对象
   */
  async sendMessageWithHistory(message, history = []) {
    try {
      const requestData = {
        model: "deepseek-chat",
        messages: [
          ...history,
          { role: "user", content: message }
        ]
      };
      
      const response = await aiApi.post('/api/deepseek/chat', requestData);
      return response.data;
    } catch (error) {
      console.error('AI请求错误:', error);
      throw error;
    }
  }
}; 